\subsection{Scrum}
\subsubsection{Allgemein}
Scrum ist eine Vorgehensmodell zur Softwareentwicklung. Allgemein lässt sich Scrum als agile Softwarenentwicklungsmethode definieren, da damit nicht versucht wird ein Projekt durchgängig zu planen, sondern durch iterative Prozesse immer lediglich die nächsten Schritte auf Basis von bereits gewonnenen Erfahrungen zu planen.
Scrum definiert für die Durchführung eines Softwareprojektes drei grundsätzliche Prinzipien:

\begin{itemize}
\item \textbf{Transparenz}\\
Der Fortschritt des Projektes muss zu jedem Zeitpunkt bekannt und für jeden ersichtlich sein.
\item \textbf{Überprüfung}\\
Das Produkt wird laufend überprüft und bewertet.
\item \textbf{Anpassung}\\
Es werden nicht alle Projektanforderungen zu einem Zeitpunkt erhoben, sondern die Anforderungen ergeben sich dynamisch durch die Überprüfungen.
\end{itemize}

Zusätzlich zu diesen Prinzipien definiert Scrum Projektinterne Rollen die verschiedene Aufgaben in der Projektorganisation übernehmen. Normalerweise gibt die Rollen Product Owner, Entwicklungsteam und ScrumMaster. Diese Rollen hatten in unserem Projekt jedoch wenig Bedeutung, da bei einem dermaßen beschränkten Entwicklerteam ohnehin jeder alle Rollen zum Teil ausübt. Aus diesem Grund wird an dieser Stelle auf die Rollen nicht näher eingegangen.

Des weiteren werden durch Scrum drei "'Zeremonien"' vorgegeben um den Projektablauf zu steuern. Die drei "'Zeremonien"' sind im Folgenden kurz beschrieben:

\begin{itemize}
\item \textbf{Sprint Planning}\\
Ein Sprint bildet in Scrum jeweils eine fest vorgegebene Zeitspanne ab in der an einzelnen Funktionen des Produktes gearbeitet wird. Bei Abschluss des Sprints sollen alle Funktionen (User Stories) die zuvor in den "'Sprint Planning Meetings"' gemeinsam mit dem Product Owner definiert wurden und für diesen Sprint geplant wurden fertiggestellt werden.
\item \textbf{Daily Scrum}\\
Am Beginn eines Arbeitstages wird immer ein kurzes Treffen des gesamten Scrum-Teams abgehalten, in welchem die Mitglieder Informationen über den aktuellen Stand des Projektes austauschen. Dieses Treffen dient nicht der Lösung von Problemen, sondern lediglich zur Bewahrung des Überblicks und damit zur Erfüllung des Transparenz Prinzips von Scrum.
\item \textbf{Sprint Review}\\
Am Ende der Fix vorgegebenen Dauer eines Sprints (ca. 1 Woche) treffen sich alle Mitglieder des Scrum-Teams und präsentieren die Ergebnisse zu welchen sie während des Sprints gelangt sind. Diese Zeremonie dient zur Überprüfung ob alle im Sprint Planning gesteckten Ziele erreicht werden konnten. Der Product Owner hat bei diesem Schritt die Aufgabe, die neuen Funktionen zu begutachten und zu entscheiden ob sie abgenommen werden können oder nicht.
\end{itemize}

Da auch bei einer agilen Entwicklungsmethode die nötige Basis an Dokumentation bestehen muss um die aktuell Aufgaben, die Anforderungen und den Projektverlauf festzuhalten, definiert Scrum verschiedene Dokumente welche als "'Artefakte"' bezeichnet werden. Die wichtigsten Artefakte sind der "Prodct Backlog"', zur Definition der Anforderungen des Endprodukts, die "'Sprint Backlogs"', welche Auskunft über die in einem Sprint zu erledigenden Aufgaben bieten und die "'Burndown-Charts"' die zur Visualisierung von geleisteter und noch verbleibender Arbeit dienen.\footcite[vgl.][]{scrum}

\subsubsection{Scrum mit Pangoscrum}
Pangoscrum stellt in Form einer Webanwendung die Möglichkeit dar das Vorgehensmodell Scrum einfach umzusetzen. Über einfach gehaltene Eingabemasken werden zu Projektbeginn die Projektmitglieder mit ihren Rollen definiert und jedes Projektmitglied hat von diesem Zeitpunkt an Zugriff auf die Anwendung und die speziell von ihm benötigten Funktionen.

Während des Projektes können in einer Eingabemaske einzelne Anforderungen als "'User Stories"' in den "'Produkt Backlog"' eingefügt werden und hinsichtlich Zeitaufwand und Nutzen bewertet werden. Die im "'Produkt Backlog"' befindlichen "'User Stories"' können später einem Sprint zugeordnet werden und finden sich dann im entsprechenden Sprint Backlog.

Über einen Kalender können Termine für die oben beschriebenen "'Zeremonien"' eingetragen werden sowie Start- und Endtermine für Sprints definiert werden.

Während den einzelnen Sprints können im Sprint Backlog einzelne User Stories als fertiggestellt oder verzögert markiert werden. Auf Basis dieser Daten erstellt Pangoscrum entsprechende Burndown-Charts um den Überblick über das Projekt zu gewährleisten.

Pangoscrum befindet sich derzeit in einer Beta-Phase und ist daher kostenlos nutzbar.

\subsubsection{Einsatz im Projekt}
Scrum kam während der gesamten Entwicklungsdauer als einzige Entwicklungsmethode zum Einsatz, dadurch wurden nicht nur Entwicklung softwaretechnischer Natur, sondern auch Entwicklungen an der Hardware mit Scrum abgebildete. 

Zu Beginn des Projektes haben wir uns in unserem Vorgehen noch stark an Scrum gebunden. Gegen Ende des Projektes wurde unsere Dokumentation mittels Pangoscrum nachlässiger, da die übrig gebliebenen Aufgaben bereits sehr fix aufgeteilt waren und zudem schwer zu planen waren.